home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d6
/
glazer.arc
/
DAYOFWEE.BAS
< prev
next >
Wrap
BASIC Source File
|
1988-10-07
|
2KB
|
48 lines
100 'Day of Week ("DAYOFWEEK")
110 CLS
120 COLOR 0,15: PRINT "Day of Week": COLOR 15,0
130 PRINT
140 ' Get names of days
150 DIM DAYS$(6)
160 FOR N = 0 TO 6
170 READ DAYS$(N)
180 NEXT N
190 DATA Saturday, Sunday, Monday, Tuesday
200 DATA Wednesday, Thursday, Friday
210 ' Get date from user
220 GOSUB 1000
230 GOSUB 2000
240 ' Calculate factor for date
250 FACTOR = 365 * YEAR + DAY + 31 * (MONTH-1)
260 'January or February
270 IF MONTH <= 2 THEN FACTOR = FACTOR + (YEAR-1) \ 4 - INT(3/4 * ( (YEAR-1) \ 100 + 1) )
280 'March or later
290 IF MONTH >= 3 THEN FACTOR = FACTOR - INT(.4 * MONTH + 2.3) + YEAR\4 - INT(3/4 * (YEAR\100 + 1) )
300 FACTOR = FACTOR - INT(FACTOR / 7) * 7
310 ' Print day of week
320 PRINT
330 PRINT DAYS$(FACTOR)
340 END
990 ' Subroutine to set up list with number of days in months
1000 DIM NDAYS(12)
1010 FOR N = 1 TO 12
1020 READ NDAYS(N)
1030 NEXT N
1040 'Number of days in months
1050 DATA 31, 28, 31, 30
1060 DATA 31, 30, 31, 31
1070 DATA 30, 31, 30, 31
1080 RETURN
1990 ' Subroutine to let user enter date
2000 INPUT "Month (1-12): ", MONTH
2010 IF (MONTH < 1) OR (MONTH > 12) THEN PRINT " *No such month *": GOTO 2000
2020 INPUT "Day (1-31): ", DAY
2030 INPUT "Year: ", YEAR
2040 IF (YEAR < 1900) OR (YEAR > 2100) THEN PRINT "Invalid year": GOTO 2000
2050 'Check for leap year
2060 IF (YEAR MOD 4) = 0 AND (YEAR MOD 100) <> 0 THEN NDAYS(2) = 29
2070 IF (YEAR MOD 400) = 0 THEN NDAYS(2) = 29
2080 'Check for valid date
2090 IF DAY > NDAYS(MONTH) THEN PRINT "* No such day *": GOTO 2000
2100 RETURN